export {}

// 必须要指定函数中参数类型,还有函数返回值的类型
function add(a:string,b:number):string{
      return a + b
      // return 1 返回其他类型直接错误
}   
// 赋值接收
let str:string = add("1",2)


const add2 = (a:number,b:number):number=>{
    return a + b
} 

// 赋值接收
let num:number = add2(1,2)

// 同时指定参数和返回值
//自定义类型函数返回值=>
type CustomFunc = (a:number,b:number) => number
// 类型兼容性
const add3:CustomFunc = ()=>{
    return 123
}

add3(1,2)





// 加入函数没有返回值，可以用void关键词来指定
type CustomFunc2 = ()=>void
// 表示函数，没有返回值
const add4:CustomFunc2 = () => {
//类型的兼容性
  return "adasd"
}

add4()

// 如果什么都不写，返回的类型为void
const add5 = ()=>{

}

// 定义一个void类型的函数
const add6 = ():void => {}


// 定义一个返回值类型为undefined的函数
const add7 = ():undefined=>{
  return undefined
}